跳到主要内容

Unity Cinemachine 插件的使用

Cinemachine 是什么?

参考资料 Unity Cinemachine 学习小结

CinemaChine 是 Unity 官方推出的一个免费的 camera 资源。虽然配置起来略显复杂,但是很好的解决了原有的 camera 功能单一使用不方便的问题。

CinemaChine 提供了镜头跟随,鼠标控制镜头方向转动,镜头在轨道上移动,同时跟踪多个目标,多个镜头切换等功能。

Cinemachine 本身不替代 camera,所以,场景中必须有一个 camera。Cinemachine 需要在 camera 上添加一个【Cainemachine Brain】的组件,同时,实际镜头所在的位置是由【Virtual Camera】提供。【Cainemachine Brain】处理多个【Virtual Camera】之间的切换关系,【Virtual Camera】提供具体显示内容的来源。

基本的使用步骤

首先在 Cinemachine 菜单里面创建一个 2D的相机,然后设置这个相机的 Follow 为跟随的角色,在这个相机对象里面的 CinemachineVirtualCamera 组件里加上拓展来控制相机的移动(在 Extension 里添加 CinemachineConfiner)

image.png

CinemachineConfiner 可以设置相机移动的边界,现在外面创建一个空对象名为:CameraBounds

给这个空对象添加一个 PolygonCollider2D组件,然后设置这个多边形碰撞器为 isTrigger(否则会导致碰撞)

把这个 CameraBounds 对象拖到 CinemachineConfiner 里面

修改这个 CameraBounds 的多边形碰撞体的大小(按着 ctrl 到边上点进左键可以删除顶点),使之为想要让相机移动的范围(相机会被锁在这个区域里)

image.png

为了方便运行时修改,这个相机有个保存运行时设置的选项,勾上就能在运行时动态保存设置的参数了 image.png

组件的设置

Virtual Camera中最重要的属性有下面几个

  • Priority:优先级。当场景中有多个Virtual Camera的时候,数字大的优先显示。
  • Follow:设置当前Virtual Camera运动的参照目标。
  • Look At:设置当前Virtual Camera镜头对准的目标。
  • Body:设置当前Virtual Camera运动的特性。
  • Aim:设置当前Virtual Camera镜头对准的特性。

Body 控制

Body 的控制方式官方提供了以下几种:

  • Do nothing:无控制。
  • Framing Transposer:在屏幕空间中计算相机和目标的Offset,不需要【Look At】对象。
  • Hard Lock To Target:把相机和目标的位置和朝向进行绑定,常用于第一人称模式。
  • Orbital Transposer:将镜头限制在一个圆形轨道上,用输入控制其移动。
  • Tracked Dolly:将镜头限制在自定义轨道上,根据【Follow】对象的移动来移动。
  • Transposer:基本形式,根据【Follow】对象的移动来移动。

Aim 镜头对准

Aim 的控制方式官方提供了以下几种:

  • Do nothing:不控制。
  • Composer:跟踪一个目标。
  • Group Composer:跟踪多个目标。
  • Hard Look At:跟踪一个目标,不可调,相当于LookAt语句效果。
  • POV:用输入来控制镜头方向。
  • Same As Follow Object:跟随拍摄模式。

官方提供的 Camera

  • FreeLookAt Camera:这个是会在目标物体周围生成三个轨道,通过输入控制镜头的移动,实现围绕目标进行观察的效果。
  • Blend List Camera:多个镜头根据时间进行切换。
  • State-Driven Camera:根据动画状态切换镜头
  • ClearShot Camera:根据跟踪对象被拍摄的效果切换镜头
  • Dolly Camera with Track:在自定义轨道上的镜头
  • Target Group Camera:同时追踪多个目标
  • Mixing Camera:在指定的两个镜头中间某个位置的镜头